package com.intellif.mozping;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TFace3Example {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TFace3Example() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andSequenceIsNull() {
            addCriterion("sequence is null");
            return (Criteria) this;
        }

        public Criteria andSequenceIsNotNull() {
            addCriterion("sequence is not null");
            return (Criteria) this;
        }

        public Criteria andSequenceEqualTo(Long value) {
            addCriterion("sequence =", value, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceNotEqualTo(Long value) {
            addCriterion("sequence <>", value, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceGreaterThan(Long value) {
            addCriterion("sequence >", value, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceGreaterThanOrEqualTo(Long value) {
            addCriterion("sequence >=", value, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceLessThan(Long value) {
            addCriterion("sequence <", value, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceLessThanOrEqualTo(Long value) {
            addCriterion("sequence <=", value, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceIn(List<Long> values) {
            addCriterion("sequence in", values, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceNotIn(List<Long> values) {
            addCriterion("sequence not in", values, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceBetween(Long value1, Long value2) {
            addCriterion("sequence between", value1, value2, "sequence");
            return (Criteria) this;
        }

        public Criteria andSequenceNotBetween(Long value1, Long value2) {
            addCriterion("sequence not between", value1, value2, "sequence");
            return (Criteria) this;
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andAccessoriesIsNull() {
            addCriterion("accessories is null");
            return (Criteria) this;
        }

        public Criteria andAccessoriesIsNotNull() {
            addCriterion("accessories is not null");
            return (Criteria) this;
        }

        public Criteria andAccessoriesEqualTo(Integer value) {
            addCriterion("accessories =", value, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesNotEqualTo(Integer value) {
            addCriterion("accessories <>", value, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesGreaterThan(Integer value) {
            addCriterion("accessories >", value, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesGreaterThanOrEqualTo(Integer value) {
            addCriterion("accessories >=", value, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesLessThan(Integer value) {
            addCriterion("accessories <", value, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesLessThanOrEqualTo(Integer value) {
            addCriterion("accessories <=", value, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesIn(List<Integer> values) {
            addCriterion("accessories in", values, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesNotIn(List<Integer> values) {
            addCriterion("accessories not in", values, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesBetween(Integer value1, Integer value2) {
            addCriterion("accessories between", value1, value2, "accessories");
            return (Criteria) this;
        }

        public Criteria andAccessoriesNotBetween(Integer value1, Integer value2) {
            addCriterion("accessories not between", value1, value2, "accessories");
            return (Criteria) this;
        }

        public Criteria andRaceIsNull() {
            addCriterion("race is null");
            return (Criteria) this;
        }

        public Criteria andRaceIsNotNull() {
            addCriterion("race is not null");
            return (Criteria) this;
        }

        public Criteria andRaceEqualTo(Integer value) {
            addCriterion("race =", value, "race");
            return (Criteria) this;
        }

        public Criteria andRaceNotEqualTo(Integer value) {
            addCriterion("race <>", value, "race");
            return (Criteria) this;
        }

        public Criteria andRaceGreaterThan(Integer value) {
            addCriterion("race >", value, "race");
            return (Criteria) this;
        }

        public Criteria andRaceGreaterThanOrEqualTo(Integer value) {
            addCriterion("race >=", value, "race");
            return (Criteria) this;
        }

        public Criteria andRaceLessThan(Integer value) {
            addCriterion("race <", value, "race");
            return (Criteria) this;
        }

        public Criteria andRaceLessThanOrEqualTo(Integer value) {
            addCriterion("race <=", value, "race");
            return (Criteria) this;
        }

        public Criteria andRaceIn(List<Integer> values) {
            addCriterion("race in", values, "race");
            return (Criteria) this;
        }

        public Criteria andRaceNotIn(List<Integer> values) {
            addCriterion("race not in", values, "race");
            return (Criteria) this;
        }

        public Criteria andRaceBetween(Integer value1, Integer value2) {
            addCriterion("race between", value1, value2, "race");
            return (Criteria) this;
        }

        public Criteria andRaceNotBetween(Integer value1, Integer value2) {
            addCriterion("race not between", value1, value2, "race");
            return (Criteria) this;
        }

        public Criteria andAgeIsNull() {
            addCriterion("age is null");
            return (Criteria) this;
        }

        public Criteria andAgeIsNotNull() {
            addCriterion("age is not null");
            return (Criteria) this;
        }

        public Criteria andAgeEqualTo(Integer value) {
            addCriterion("age =", value, "age");
            return (Criteria) this;
        }

        public Criteria andAgeNotEqualTo(Integer value) {
            addCriterion("age <>", value, "age");
            return (Criteria) this;
        }

        public Criteria andAgeGreaterThan(Integer value) {
            addCriterion("age >", value, "age");
            return (Criteria) this;
        }

        public Criteria andAgeGreaterThanOrEqualTo(Integer value) {
            addCriterion("age >=", value, "age");
            return (Criteria) this;
        }

        public Criteria andAgeLessThan(Integer value) {
            addCriterion("age <", value, "age");
            return (Criteria) this;
        }

        public Criteria andAgeLessThanOrEqualTo(Integer value) {
            addCriterion("age <=", value, "age");
            return (Criteria) this;
        }

        public Criteria andAgeIn(List<Integer> values) {
            addCriterion("age in", values, "age");
            return (Criteria) this;
        }

        public Criteria andAgeNotIn(List<Integer> values) {
            addCriterion("age not in", values, "age");
            return (Criteria) this;
        }

        public Criteria andAgeBetween(Integer value1, Integer value2) {
            addCriterion("age between", value1, value2, "age");
            return (Criteria) this;
        }

        public Criteria andAgeNotBetween(Integer value1, Integer value2) {
            addCriterion("age not between", value1, value2, "age");
            return (Criteria) this;
        }

        public Criteria andFromImageIdIsNull() {
            addCriterion("from_image_id is null");
            return (Criteria) this;
        }

        public Criteria andFromImageIdIsNotNull() {
            addCriterion("from_image_id is not null");
            return (Criteria) this;
        }

        public Criteria andFromImageIdEqualTo(Long value) {
            addCriterion("from_image_id =", value, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdNotEqualTo(Long value) {
            addCriterion("from_image_id <>", value, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdGreaterThan(Long value) {
            addCriterion("from_image_id >", value, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdGreaterThanOrEqualTo(Long value) {
            addCriterion("from_image_id >=", value, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdLessThan(Long value) {
            addCriterion("from_image_id <", value, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdLessThanOrEqualTo(Long value) {
            addCriterion("from_image_id <=", value, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdIn(List<Long> values) {
            addCriterion("from_image_id in", values, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdNotIn(List<Long> values) {
            addCriterion("from_image_id not in", values, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdBetween(Long value1, Long value2) {
            addCriterion("from_image_id between", value1, value2, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromImageIdNotBetween(Long value1, Long value2) {
            addCriterion("from_image_id not between", value1, value2, "fromImageId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdIsNull() {
            addCriterion("from_person_id is null");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdIsNotNull() {
            addCriterion("from_person_id is not null");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdEqualTo(Long value) {
            addCriterion("from_person_id =", value, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdNotEqualTo(Long value) {
            addCriterion("from_person_id <>", value, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdGreaterThan(Long value) {
            addCriterion("from_person_id >", value, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdGreaterThanOrEqualTo(Long value) {
            addCriterion("from_person_id >=", value, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdLessThan(Long value) {
            addCriterion("from_person_id <", value, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdLessThanOrEqualTo(Long value) {
            addCriterion("from_person_id <=", value, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdIn(List<Long> values) {
            addCriterion("from_person_id in", values, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdNotIn(List<Long> values) {
            addCriterion("from_person_id not in", values, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdBetween(Long value1, Long value2) {
            addCriterion("from_person_id between", value1, value2, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromPersonIdNotBetween(Long value1, Long value2) {
            addCriterion("from_person_id not between", value1, value2, "fromPersonId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdIsNull() {
            addCriterion("from_video_id is null");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdIsNotNull() {
            addCriterion("from_video_id is not null");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdEqualTo(Long value) {
            addCriterion("from_video_id =", value, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdNotEqualTo(Long value) {
            addCriterion("from_video_id <>", value, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdGreaterThan(Long value) {
            addCriterion("from_video_id >", value, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdGreaterThanOrEqualTo(Long value) {
            addCriterion("from_video_id >=", value, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdLessThan(Long value) {
            addCriterion("from_video_id <", value, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdLessThanOrEqualTo(Long value) {
            addCriterion("from_video_id <=", value, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdIn(List<Long> values) {
            addCriterion("from_video_id in", values, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdNotIn(List<Long> values) {
            addCriterion("from_video_id not in", values, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdBetween(Long value1, Long value2) {
            addCriterion("from_video_id between", value1, value2, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andFromVideoIdNotBetween(Long value1, Long value2) {
            addCriterion("from_video_id not between", value1, value2, "fromVideoId");
            return (Criteria) this;
        }

        public Criteria andGenderIsNull() {
            addCriterion("gender is null");
            return (Criteria) this;
        }

        public Criteria andGenderIsNotNull() {
            addCriterion("gender is not null");
            return (Criteria) this;
        }

        public Criteria andGenderEqualTo(Integer value) {
            addCriterion("gender =", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotEqualTo(Integer value) {
            addCriterion("gender <>", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderGreaterThan(Integer value) {
            addCriterion("gender >", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderGreaterThanOrEqualTo(Integer value) {
            addCriterion("gender >=", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderLessThan(Integer value) {
            addCriterion("gender <", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderLessThanOrEqualTo(Integer value) {
            addCriterion("gender <=", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderIn(List<Integer> values) {
            addCriterion("gender in", values, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotIn(List<Integer> values) {
            addCriterion("gender not in", values, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderBetween(Integer value1, Integer value2) {
            addCriterion("gender between", value1, value2, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotBetween(Integer value1, Integer value2) {
            addCriterion("gender not between", value1, value2, "gender");
            return (Criteria) this;
        }

        public Criteria andImageDataIsNull() {
            addCriterion("image_data is null");
            return (Criteria) this;
        }

        public Criteria andImageDataIsNotNull() {
            addCriterion("image_data is not null");
            return (Criteria) this;
        }

        public Criteria andImageDataEqualTo(String value) {
            addCriterion("image_data =", value, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataNotEqualTo(String value) {
            addCriterion("image_data <>", value, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataGreaterThan(String value) {
            addCriterion("image_data >", value, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataGreaterThanOrEqualTo(String value) {
            addCriterion("image_data >=", value, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataLessThan(String value) {
            addCriterion("image_data <", value, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataLessThanOrEqualTo(String value) {
            addCriterion("image_data <=", value, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataLike(String value) {
            addCriterion("image_data like", value, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataNotLike(String value) {
            addCriterion("image_data not like", value, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataIn(List<String> values) {
            addCriterion("image_data in", values, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataNotIn(List<String> values) {
            addCriterion("image_data not in", values, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataBetween(String value1, String value2) {
            addCriterion("image_data between", value1, value2, "imageData");
            return (Criteria) this;
        }

        public Criteria andImageDataNotBetween(String value1, String value2) {
            addCriterion("image_data not between", value1, value2, "imageData");
            return (Criteria) this;
        }

        public Criteria andIndexedIsNull() {
            addCriterion("indexed is null");
            return (Criteria) this;
        }

        public Criteria andIndexedIsNotNull() {
            addCriterion("indexed is not null");
            return (Criteria) this;
        }

        public Criteria andIndexedEqualTo(Integer value) {
            addCriterion("indexed =", value, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedNotEqualTo(Integer value) {
            addCriterion("indexed <>", value, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedGreaterThan(Integer value) {
            addCriterion("indexed >", value, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedGreaterThanOrEqualTo(Integer value) {
            addCriterion("indexed >=", value, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedLessThan(Integer value) {
            addCriterion("indexed <", value, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedLessThanOrEqualTo(Integer value) {
            addCriterion("indexed <=", value, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedIn(List<Integer> values) {
            addCriterion("indexed in", values, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedNotIn(List<Integer> values) {
            addCriterion("indexed not in", values, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedBetween(Integer value1, Integer value2) {
            addCriterion("indexed between", value1, value2, "indexed");
            return (Criteria) this;
        }

        public Criteria andIndexedNotBetween(Integer value1, Integer value2) {
            addCriterion("indexed not between", value1, value2, "indexed");
            return (Criteria) this;
        }

        public Criteria andSourceIdIsNull() {
            addCriterion("source_id is null");
            return (Criteria) this;
        }

        public Criteria andSourceIdIsNotNull() {
            addCriterion("source_id is not null");
            return (Criteria) this;
        }

        public Criteria andSourceIdEqualTo(Long value) {
            addCriterion("source_id =", value, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdNotEqualTo(Long value) {
            addCriterion("source_id <>", value, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdGreaterThan(Long value) {
            addCriterion("source_id >", value, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdGreaterThanOrEqualTo(Long value) {
            addCriterion("source_id >=", value, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdLessThan(Long value) {
            addCriterion("source_id <", value, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdLessThanOrEqualTo(Long value) {
            addCriterion("source_id <=", value, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdIn(List<Long> values) {
            addCriterion("source_id in", values, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdNotIn(List<Long> values) {
            addCriterion("source_id not in", values, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdBetween(Long value1, Long value2) {
            addCriterion("source_id between", value1, value2, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceIdNotBetween(Long value1, Long value2) {
            addCriterion("source_id not between", value1, value2, "sourceId");
            return (Criteria) this;
        }

        public Criteria andSourceTypeIsNull() {
            addCriterion("source_type is null");
            return (Criteria) this;
        }

        public Criteria andSourceTypeIsNotNull() {
            addCriterion("source_type is not null");
            return (Criteria) this;
        }

        public Criteria andSourceTypeEqualTo(Integer value) {
            addCriterion("source_type =", value, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeNotEqualTo(Integer value) {
            addCriterion("source_type <>", value, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeGreaterThan(Integer value) {
            addCriterion("source_type >", value, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("source_type >=", value, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeLessThan(Integer value) {
            addCriterion("source_type <", value, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeLessThanOrEqualTo(Integer value) {
            addCriterion("source_type <=", value, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeIn(List<Integer> values) {
            addCriterion("source_type in", values, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeNotIn(List<Integer> values) {
            addCriterion("source_type not in", values, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeBetween(Integer value1, Integer value2) {
            addCriterion("source_type between", value1, value2, "sourceType");
            return (Criteria) this;
        }

        public Criteria andSourceTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("source_type not between", value1, value2, "sourceType");
            return (Criteria) this;
        }

        public Criteria andTimeIsNull() {
            addCriterion("time is null");
            return (Criteria) this;
        }

        public Criteria andTimeIsNotNull() {
            addCriterion("time is not null");
            return (Criteria) this;
        }

        public Criteria andTimeEqualTo(Date value) {
            addCriterion("time =", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotEqualTo(Date value) {
            addCriterion("time <>", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeGreaterThan(Date value) {
            addCriterion("time >", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("time >=", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeLessThan(Date value) {
            addCriterion("time <", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeLessThanOrEqualTo(Date value) {
            addCriterion("time <=", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeIn(List<Date> values) {
            addCriterion("time in", values, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotIn(List<Date> values) {
            addCriterion("time not in", values, "time");
            return (Criteria) this;
        }

        public Criteria andTimeBetween(Date value1, Date value2) {
            addCriterion("time between", value1, value2, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotBetween(Date value1, Date value2) {
            addCriterion("time not between", value1, value2, "time");
            return (Criteria) this;
        }

        public Criteria andVersionIsNull() {
            addCriterion("version is null");
            return (Criteria) this;
        }

        public Criteria andVersionIsNotNull() {
            addCriterion("version is not null");
            return (Criteria) this;
        }

        public Criteria andVersionEqualTo(Integer value) {
            addCriterion("version =", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotEqualTo(Integer value) {
            addCriterion("version <>", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThan(Integer value) {
            addCriterion("version >", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThanOrEqualTo(Integer value) {
            addCriterion("version >=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThan(Integer value) {
            addCriterion("version <", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThanOrEqualTo(Integer value) {
            addCriterion("version <=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionIn(List<Integer> values) {
            addCriterion("version in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotIn(List<Integer> values) {
            addCriterion("version not in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionBetween(Integer value1, Integer value2) {
            addCriterion("version between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotBetween(Integer value1, Integer value2) {
            addCriterion("version not between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andJsonIsNull() {
            addCriterion("json is null");
            return (Criteria) this;
        }

        public Criteria andJsonIsNotNull() {
            addCriterion("json is not null");
            return (Criteria) this;
        }

        public Criteria andJsonEqualTo(String value) {
            addCriterion("json =", value, "json");
            return (Criteria) this;
        }

        public Criteria andJsonNotEqualTo(String value) {
            addCriterion("json <>", value, "json");
            return (Criteria) this;
        }

        public Criteria andJsonGreaterThan(String value) {
            addCriterion("json >", value, "json");
            return (Criteria) this;
        }

        public Criteria andJsonGreaterThanOrEqualTo(String value) {
            addCriterion("json >=", value, "json");
            return (Criteria) this;
        }

        public Criteria andJsonLessThan(String value) {
            addCriterion("json <", value, "json");
            return (Criteria) this;
        }

        public Criteria andJsonLessThanOrEqualTo(String value) {
            addCriterion("json <=", value, "json");
            return (Criteria) this;
        }

        public Criteria andJsonLike(String value) {
            addCriterion("json like", value, "json");
            return (Criteria) this;
        }

        public Criteria andJsonNotLike(String value) {
            addCriterion("json not like", value, "json");
            return (Criteria) this;
        }

        public Criteria andJsonIn(List<String> values) {
            addCriterion("json in", values, "json");
            return (Criteria) this;
        }

        public Criteria andJsonNotIn(List<String> values) {
            addCriterion("json not in", values, "json");
            return (Criteria) this;
        }

        public Criteria andJsonBetween(String value1, String value2) {
            addCriterion("json between", value1, value2, "json");
            return (Criteria) this;
        }

        public Criteria andJsonNotBetween(String value1, String value2) {
            addCriterion("json not between", value1, value2, "json");
            return (Criteria) this;
        }

        public Criteria andQualityIsNull() {
            addCriterion("quality is null");
            return (Criteria) this;
        }

        public Criteria andQualityIsNotNull() {
            addCriterion("quality is not null");
            return (Criteria) this;
        }

        public Criteria andQualityEqualTo(Integer value) {
            addCriterion("quality =", value, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityNotEqualTo(Integer value) {
            addCriterion("quality <>", value, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityGreaterThan(Integer value) {
            addCriterion("quality >", value, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityGreaterThanOrEqualTo(Integer value) {
            addCriterion("quality >=", value, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityLessThan(Integer value) {
            addCriterion("quality <", value, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityLessThanOrEqualTo(Integer value) {
            addCriterion("quality <=", value, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityIn(List<Integer> values) {
            addCriterion("quality in", values, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityNotIn(List<Integer> values) {
            addCriterion("quality not in", values, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityBetween(Integer value1, Integer value2) {
            addCriterion("quality between", value1, value2, "quality");
            return (Criteria) this;
        }

        public Criteria andQualityNotBetween(Integer value1, Integer value2) {
            addCriterion("quality not between", value1, value2, "quality");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}